function SessionTimeout(){}
SessionTimeout.prototype = {
    countDown : false,
    sessionTimeout : 0,
    timeoutAlert : 0,
    timeoutId : 0,
    
    
    registerSessionTimeout : function (sessExpire, timeBeforeAlert){
		this.sessionTimeout = sessExpire;
		this.timeoutAlert = timeBeforeAlert;
		clearTimeout(this.timeoutId);
		
		var _this = this;
		this.timeoutId = setTimeout(function() { _this.alertSessionTimeout(); }, this.sessionTimeout - this.timeoutAlert);
	},
	
	alertSessionTimeout: function(){
		var modal = new Modal({
			title: translate['tickets-js-modal-title-alert'],
			body: '
'+translate['session-timeout-js-alert']+'  '+translate['session-timeout-js-seconds']+'
'+translate['session-timeout-js-alert-p2']+'
',
			buttonOK : false,
			cancelText : translate['session-timeout-js-update'],
			cancel : function(){
				$.ajax({
					url: '/index/keep-alive',
					success: function(time){
						console.log(time);
					}
				});
			}
		});
		
		modal.show();
		this.registerCountdown();
	},
	
	registerCountdown : function(){
		if(this.countDown != false){
			clearInterval(countDown);
		}
		
		var _this = this;
		this.countDown = setInterval(function(){
			var countdown = parseInt($('#session-countdown').html());
			if(countdown <= 0){
				_this.sessionExpired();
				clearInterval(_this.countDown);
			}else{
				$('#session-countdown').html(countdown - 1);
				if(countdown < 3)
					$('#countdown-label').html(' ' + translate['session-timeout-js-second']);
				else
					$('#countdown-label').html(' ' + translate['session-timeout-js-seconds']);
				
			}
		}, 1000);
	},
	
	sessionExpired: function (){
		var modal = new Modal({
			title: translate['session-timeout-js-expired-header'],
			body: ''+translate['session-timeout-js-expired-body']+'
',
			cancelText : translate['session-timeout-js-close'],
			okText : translate['session-timeout-js-return-to-login'],
			cancel : function(){
				window.location.href = '/';
			},
			confirm : function(){
				window.location.href = '/login';
			}
		});
		
		modal.replace();
	}
}
var SessionTimeout = new SessionTimeout();
$(document).ajaxComplete(function(){
	if(SessionTimeout.sessionTimeout != 0){
		clearTimeout(SessionTimeout.timeoutId);
		SessionTimeout.timeoutId = setTimeout(function() { SessionTimeout.alertSessionTimeout(); }, SessionTimeout.sessionTimeout - SessionTimeout.timeoutAlert);
	}
});